enums: Add a GtkSymbolicColor enum
authorBenjamin Otte <otte@redhat.com>
Mon, 30 Aug 2021 02:32:22 +0000 (04:32 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 30 Aug 2021 02:36:16 +0000 (04:36 +0200)
That way we don't nedmagic numbres to index the colors array.

Use it in the symbolic paintable demo.

demos/gtk-demo/paintable_symbolic.c
gtk/gtkenums.h

index 6be093f6e62fde04a74e0551d2c0c89e23dc0e75..8f31ca31efb896057a40f51eac3cd5ae1cd5b086 100644 (file)
@@ -61,10 +61,10 @@ gtk_nuclear_symbolic_snapshot_symbolic (GtkSymbolicPaintable *paintable,
       bg_color = &transparent;
       break;
     case WARNING_ALERT:
-      bg_color = &colors[2]; /* warning color */
+      bg_color = &colors[GTK_SYMBOLIC_COLOR_WARNING];
       break;
     case WARNING_EMERGENCY:
-      bg_color = &colors[1]; /* error color */
+      bg_color = &colors[GTK_SYMBOLIC_COLOR_ERROR];
       break;
     default:
       /* This should never happen, but we better do defensive coding
@@ -76,7 +76,7 @@ gtk_nuclear_symbolic_snapshot_symbolic (GtkSymbolicPaintable *paintable,
 
   /* Draw the icon with the selected warning color */
   gtk_nuclear_snapshot (snapshot,
-                        &colors[0], /* foreground color */
+                        &colors[GTK_SYMBOLIC_COLOR_FOREGROUND],
                         bg_color,
                         width, height,
                         0);
index 31b0c8fb46eda20439a028e8ffa38873479c3493..0dbae717261c371f51089d76c8376a9f4dd402c5 100644 (file)
@@ -1131,6 +1131,25 @@ typedef enum {
   GTK_SYSTEM_SETTING_ICON_THEME
 } GtkSystemSetting;
 
+/**
+ * GtkSymbolicColor:
+ * @GTK_SYMBOLIC_COLOR_FOREGROUND: The default foreground color
+ * @GTK_SYMBOLIC_COLOR_ERROR: Indication color for errors
+ * @GTK_SYMBOLIC_COLOR_WARNING: Indication color for warnings
+ * @GTK_SYMBOLIC_COLOR_SUCCESS: Indication color for success
+ *
+ * The indexes of colors passed to symbolic color rendering, such as
+ * [vfunc.GtkSymbolicPaintable.snapshot_symbolic].
+ *
+ * More values may be added over time.
+ */
+typedef enum {
+  GTK_SYMBOLIC_COLOR_FOREGROUND = 0,
+  GTK_SYMBOLIC_COLOR_ERROR = 1,
+  GTK_SYMBOLIC_COLOR_WARNING = 2,
+  GTK_SYMBOLIC_COLOR_SUCCESS = 3
+} GtkSymbolicColor;
+
 /**
  * GtkAccessibleRole:
  * @GTK_ACCESSIBLE_ROLE_ALERT: An element with important, and usually